home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / Script.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  38.7 KB  |  904 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        Script.mod
  3.  
  4.      Contains:    Script Manager interfaces
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$IF UNDEFINED OLDROUTINENAMES*)
  21. (*$SET OLDROUTINENAMES FALSE*)
  22. (*$END*)
  23. (*$TAGS-*)
  24. (*$CALLING PASCAL*)
  25. MODULE Script;
  26.  
  27. IMPORT SYSTEM, Types, Events;
  28.  
  29. (* $PUSH*)
  30. (* $ALIGN MAC68K*)
  31. (* $LibExport+*)
  32.  
  33. CONST
  34. (* Script System constants *)
  35.     smSystemScript*                = -1;                            (*designates system script.*)
  36.     smCurrentScript*                = -2;                            (*designates current font script.*)
  37.     smAllScripts*                = -3;                            (*designates any script    *)
  38.     smRoman*                        = 0;                            (*Roman*)
  39.     smJapanese*                    = 1;                            (*Japanese*)
  40.     smTradChinese*                = 2;                            (*Traditional Chinese*)
  41.     smKorean*                    = 3;                            (*Korean*)
  42.     smArabic*                    = 4;                            (*Arabic*)
  43.     smHebrew*                    = 5;                            (*Hebrew*)
  44.     smGreek*                        = 6;                            (*Greek*)
  45.     smCyrillic*                    = 7;                            (*Cyrillic*)
  46.     smRSymbol*                    = 8;                            (*Right-left symbol*)
  47.     smDevanagari*                = 9;                            (*Devanagari*)
  48.     smGurmukhi*                    = 10;                            (*Gurmukhi*)
  49.     smGujarati*                    = 11;                            (*Gujarati*)
  50.     smOriya*                        = 12;                            (*Oriya*)
  51.     smBengali*                    = 13;                            (*Bengali*)
  52.     smTamil*                        = 14;                            (*Tamil*)
  53.     smTelugu*                    = 15;                            (*Telugu*)
  54.     smKannada*                    = 16;                            (*Kannada/Kanarese*)
  55.     smMalayalam*                    = 17;                            (*Malayalam*)
  56.  
  57.     smSinhalese*                    = 18;                            (*Sinhalese*)
  58.     smBurmese*                    = 19;                            (*Burmese*)
  59.     smKhmer*                        = 20;                            (*Khmer/Cambodian*)
  60.     smThai*                        = 21;                            (*Thai*)
  61.     smLaotian*                    = 22;                            (*Laotian*)
  62.     smGeorgian*                    = 23;                            (*Georgian*)
  63.     smArmenian*                    = 24;                            (*Armenian*)
  64.     smSimpChinese*                = 25;                            (*Simplified Chinese*)
  65.     smTibetan*                    = 26;                            (*Tibetan*)
  66.     smMongolian*                    = 27;                            (*Mongolian*)
  67.     smGeez*                        = 28;                            (*Geez/Ethiopic*)
  68.     smEthiopic*                    = 28;                            (*Synonym for smGeez*)
  69.     smEastEurRoman*                = 29;                            (*Synonym for smSlavic*)
  70.     smVietnamese*                = 30;                            (*Vietnamese*)
  71.     smExtArabic*                    = 31;                            (*extended Arabic*)
  72.     smUninterp*                    = 32;                            (*uninterpreted symbols, e.g. palette symbols*)
  73.     smKlingon*                    = 32;                            (*Klingon*)
  74. (*Obsolete names for script systems (kept for backward compatibility)*)
  75.     smChinese*                    = 2;                            (*(use smTradChinese or smSimpChinese)*)
  76.     smRussian*                    = 7;                            (*(old name for smCyrillic)*)
  77. (* smMaldivian* = 25;         (no more smMaldivian!)*)
  78.     smAmharic*                    = 28;                            (*(old name for smGeez)*)
  79.     smSlavic*                    = 29;                            (*(old name for smEastEurRoman)*)
  80.  
  81.     smSindhi*                    = 31;                            (*(old name for smExtArabic)*)
  82. (* Language Codes *)
  83.     langEnglish*                    = 0;                            (* smRoman script *)
  84.     langFrench*                    = 1;                            (* smRoman script *)
  85.     langGerman*                    = 2;                            (* smRoman script *)
  86.     langItalian*                    = 3;                            (* smRoman script *)
  87.     langDutch*                    = 4;                            (* smRoman script *)
  88.     langSwedish*                    = 5;                            (* smRoman script *)
  89.     langSpanish*                    = 6;                            (* smRoman script *)
  90.     langDanish*                    = 7;                            (* smRoman script *)
  91.     langPortuguese*                = 8;                            (* smRoman script *)
  92.     langNorwegian*                = 9;                            (* smRoman script *)
  93.     langHebrew*                    = 10;                            (* smHebrew script *)
  94.     langJapanese*                = 11;                            (* smJapanese script *)
  95.     langArabic*                    = 12;                            (* smArabic script *)
  96.     langFinnish*                    = 13;                            (* smRoman script *)
  97.     langGreek*                    = 14;                            (* smGreek script *)
  98.     langIcelandic*                = 15;                            (* extended Roman script *)
  99.     langMaltese*                    = 16;                            (* extended Roman script *)
  100.     langTurkish*                    = 17;                            (* extended Roman script *)
  101.     langCroatian*                = 18;                            (* Serbo-Croatian in extended Roman script *)
  102.     langTradChinese*                = 19;                            (* Chinese in traditional characters *)
  103.  
  104.     langUrdu*                    = 20;                            (* smArabic script *)
  105.     langHindi*                    = 21;                            (* smDevanagari script *)
  106.     langThai*                    = 22;                            (* smThai script *)
  107.     langKorean*                    = 23;                            (* smKorean script *)
  108.     langLithuanian*                = 24;                            (* smEastEurRoman script *)
  109.     langPolish*                    = 25;                            (* smEastEurRoman script *)
  110.     langHungarian*                = 26;                            (* smEastEurRoman script *)
  111.     langEstonian*                = 27;                            (* smEastEurRoman script *)
  112.     langLettish*                    = 28;                            (* smEastEurRoman script *)
  113.     langLatvian*                    = 28;                            (* Synonym for langLettish *)
  114.     langSaamisk*                    = 29;                            (* ext. Roman script, lang. of the Sami/Lapp people of Scand. *)
  115.     langLappish*                    = 29;                            (* Synonym for langSaamisk *)
  116.     langFaeroese*                = 30;                            (* smRoman script *)
  117.     langFarsi*                    = 31;                            (* smArabic script *)
  118.     langPersian*                    = 31;                            (* Synonym for langFarsi *)
  119.     langRussian*                    = 32;                            (* smCyrillic script *)
  120.     langSimpChinese*                = 33;                            (* Chinese in simplified characters *)
  121.     langFlemish*                    = 34;                            (* smRoman script *)
  122.     langIrish*                    = 35;                            (* smRoman script *)
  123.     langAlbanian*                = 36;                            (* smRoman script *)
  124.  
  125.     langRomanian*                = 37;                            (* smEastEurRoman script *)
  126.     langCzech*                    = 38;                            (* smEastEurRoman script *)
  127.     langSlovak*                    = 39;                            (* smEastEurRoman script *)
  128.     langSlovenian*                = 40;                            (* smEastEurRoman script *)
  129.     langYiddish*                    = 41;                            (* smHebrew script *)
  130.     langSerbian*                    = 42;                            (* Serbo-Croatian in smCyrillic script *)
  131.     langMacedonian*                = 43;                            (* smCyrillic script *)
  132.     langBulgarian*                = 44;                            (* smCyrillic script *)
  133.     langUkrainian*                = 45;                            (* smCyrillic script *)
  134.     langByelorussian*            = 46;                            (* smCyrillic script *)
  135.     langUzbek*                    = 47;                            (* smCyrillic script *)
  136.     langKazakh*                    = 48;                            (* smCyrillic script *)
  137.     langAzerbaijani*                = 49;                            (* Azerbaijani in smCyrillic script (USSR) *)
  138.     langAzerbaijanAr*            = 50;                            (* Azerbaijani in smArabic script (Iran) *)
  139.     langArmenian*                = 51;                            (* smArmenian script *)
  140.     langGeorgian*                = 52;                            (* smGeorgian script *)
  141.     langMoldavian*                = 53;                            (* smCyrillic script *)
  142.     langKirghiz*                    = 54;                            (* smCyrillic script *)
  143.     langTajiki*                    = 55;                            (* smCyrillic script *)
  144.     langTurkmen*                    = 56;                            (* smCyrillic script *)
  145.  
  146.     langMongolian*                = 57;                            (* Mongolian in smMongolian script *)
  147.     langMongolianCyr*            = 58;                            (* Mongolian in smCyrillic script *)
  148.     langPashto*                    = 59;                            (* smArabic script *)
  149.     langKurdish*                    = 60;                            (* smArabic script *)
  150.     langKashmiri*                = 61;                            (* smArabic script *)
  151.     langSindhi*                    = 62;                            (* smExtArabic script *)
  152.     langTibetan*                    = 63;                            (* smTibetan script *)
  153.     langNepali*                    = 64;                            (* smDevanagari script *)
  154.     langSanskrit*                = 65;                            (* smDevanagari script *)
  155.     langMarathi*                    = 66;                            (* smDevanagari script *)
  156.     langBengali*                    = 67;                            (* smBengali script *)
  157.     langAssamese*                = 68;                            (* smBengali script *)
  158.     langGujarati*                = 69;                            (* smGujarati script *)
  159.     langPunjabi*                    = 70;                            (* smGurmukhi script *)
  160.     langOriya*                    = 71;                            (* smOriya script *)
  161.     langMalayalam*                = 72;                            (* smMalayalam script *)
  162.     langKannada*                    = 73;                            (* smKannada script *)
  163.     langTamil*                    = 74;                            (* smTamil script *)
  164.     langTelugu*                    = 75;                            (* smTelugu script *)
  165.     langSinhalese*                = 76;                            (* smSinhalese script *)
  166.  
  167.     langBurmese*                    = 77;                            (* smBurmese script *)
  168.     langKhmer*                    = 78;                            (* smKhmer script *)
  169.     langLao*                        = 79;                            (* smLaotian script *)
  170.     langVietnamese*                = 80;                            (* smVietnamese script *)
  171.     langIndonesian*                = 81;                            (* smRoman script *)
  172.     langTagalog*                    = 82;                            (* smRoman script *)
  173.     langMalayRoman*                = 83;                            (* Malay in smRoman script *)
  174.     langMalayArabic*                = 84;                            (* Malay in smArabic script *)
  175.     langAmharic*                    = 85;                            (* smEthiopic script *)
  176.     langTigrinya*                = 86;                            (* smEthiopic script *)
  177.     langGalla*                    = 87;                            (* smEthiopic script *)
  178.     langOromo*                    = 87;                            (* Synonym for langGalla *)
  179.     langSomali*                    = 88;                            (* smRoman script *)
  180.     langSwahili*                    = 89;                            (* smRoman script *)
  181.     langRuanda*                    = 90;                            (* smRoman script *)
  182.     langRundi*                    = 91;                            (* smRoman script *)
  183.     langChewa*                    = 92;                            (* smRoman script *)
  184.     langMalagasy*                = 93;                            (* smRoman script *)
  185.     langEsperanto*                = 94;                            (* extended Roman script *)
  186.     langWelsh*                    = 128;                            (* smRoman script *)
  187.  
  188.     langBasque*                    = 129;                            (* smRoman script *)
  189.     langCatalan*                    = 130;                            (* smRoman script *)
  190.     langLatin*                    = 131;                            (* smRoman script *)
  191.     langQuechua*                    = 132;                            (* smRoman script *)
  192.     langGuarani*                    = 133;                            (* smRoman script *)
  193.     langAymara*                    = 134;                            (* smRoman script *)
  194.     langTatar*                    = 135;                            (* smCyrillic script *)
  195.     langUighur*                    = 136;                            (* smArabic script *)
  196.     langDzongkha*                = 137;                            (* (lang of Bhutan) smTibetan script *)
  197.     langJavaneseRom*                = 138;                            (* Javanese in smRoman script *)
  198.     langSundaneseRom*            = 139;                            (* Sundanese in smRoman script *)
  199. (* Obsolete names, kept for backward compatibility *)
  200.     langPortugese*                = 8;                            (* old misspelled version, kept for compatibility *)
  201.     langMalta*                    = 16;                            (* old misspelled version, kept for compatibility *)
  202.     langYugoslavian*                = 18;                            (* (use langCroatian, langSerbian, etc.) *)
  203.     langChinese*                    = 19;                            (* (use langTradChinese or langSimpChinese) *)
  204.     langLapponian*                = 29;                            (* Synonym for langSaamisk, not correct name *)
  205.  
  206. (* Regional version codes *)
  207.     verUS*                        = 0;
  208.     verFrance*                    = 1;
  209.     verBritain*                    = 2;
  210.     verGermany*                    = 3;
  211.     verItaly*                    = 4;
  212.     verNetherlands*                = 5;
  213.     verFrBelgiumLux*                = 6;                            (* French for Belgium & Luxembourg *)
  214.     verSweden*                    = 7;
  215.     verSpain*                    = 8;
  216.     verDenmark*                    = 9;
  217.     verPortugal*                    = 10;
  218.     verFrCanada*                    = 11;
  219.     verNorway*                    = 12;
  220.  
  221.     verIsrael*                    = 13;
  222.     verJapan*                    = 14;
  223.     verAustralia*                = 15;
  224.     verArabic*                    = 16;                            (* synonym for verArabia *)
  225.     verFinland*                    = 17;
  226.     verFrSwiss*                    = 18;                            (* French Swiss *)
  227.     verGrSwiss*                    = 19;                            (* German Swiss *)
  228.     verGreece*                    = 20;
  229.     verIceland*                    = 21;
  230.     verMalta*                    = 22;
  231.     verCyprus*                    = 23;
  232.     verTurkey*                    = 24;
  233.     verYugoCroatian*                = 25;                            (* Croatian system for Yugoslavia *)
  234.     verNetherlandsComma*            = 26;
  235.     verBelgiumLuxPoint*            = 27;
  236.     verCanadaComma*                = 28;
  237.     verCanadaPoint*                = 29;
  238.     vervariantPortugal*            = 30;
  239.     vervariantNorway*            = 31;
  240.     vervariantDenmark*            = 32;
  241.     verIndiaHindi*                = 33;                            (* Hindi system for India *)
  242.     verPakistan*                    = 34;
  243.     verTurkishModified*            = 35;
  244.     verGreekAncient*                = 40;
  245.     verLithuania*                = 41;
  246.     verPoland*                    = 42;
  247.     verHungary*                    = 43;
  248.     verEstonia*                    = 44;
  249.     verLatvia*                    = 45;
  250.  
  251.     verLapland*                    = 46;
  252.     verFaeroeIsl*                = 47;
  253.     verIran*                        = 48;
  254.     verRussia*                    = 49;
  255.     verIreland*                    = 50;                            (* English-language version for Ireland *)
  256.     verKorea*                    = 51;
  257.     verChina*                    = 52;
  258.     verTaiwan*                    = 53;
  259.     verThailand*                    = 54;
  260.     verCzech*                    = 56;
  261.     verSlovak*                    = 57;
  262.     verGenericFE*                = 58;
  263.     verMagyar*                    = 59;
  264.     verBengali*                    = 60;
  265.     verByeloRussian*                = 61;
  266.     verUkrania*                    = 62;
  267.     verItalianSwiss*                = 63;
  268.     verAlternateGr*                = 64;
  269.  
  270.     minCountry*                    = verUS;
  271.     maxCountry*                    = verAlternateGr;                (* changed from verThailand when additional enums added *)
  272.  
  273. (* Obsolete region code names, kept for backward compatibility *)
  274.     verBelgiumLux*                = 6;                            (* (use verFrBelgiumLux instead, less ambiguous) *)
  275.     verArabia*                    = 16;
  276.     verYugoslavia*                = 25;                            (* (use verYugoCroatian instead, less ambiguous) *)
  277.     verIndia*                    = 33;                            (* (use verIndiaHindi instead, less ambiguous) *)
  278. (* Calendar Codes *)
  279.     calGregorian*                = 0;
  280.     calArabicCivil*                = 1;
  281.     calArabicLunar*                = 2;
  282.     calJapanese*                    = 3;
  283.     calJewish*                    = 4;
  284.     calCoptic*                    = 5;
  285.     calPersian*                    = 6;
  286. (* Integer Format Codes *)
  287.     intWestern*                    = 0;
  288.     intArabic*                    = 1;
  289.     intRoman*                    = 2;
  290.     intJapanese*                    = 3;
  291.     intEuropean*                    = 4;
  292.     intOutputMask*                = $8000;
  293. (* CharByte byte types *)
  294.     smSingleByte*                = 0;
  295.     smFirstByte*                    = -1;
  296.     smLastByte*                    = 1;
  297.     smMiddleByte*                = 2;
  298. (* CharType field masks *)
  299.     smcTypeMask*                    = $000F;
  300.     smcReserved*                    = $00F0;
  301.  
  302.     smcClassMask*                = $0F00;
  303.     smcOrientationMask*            = $1000;                        (*two-byte script glyph orientation*)
  304.     smcRightMask*                = $2000;
  305.     smcUpperMask*                = $4000;
  306.     smcDoubleMask*                = $8000;
  307. (* Basic CharType character types *)
  308.     smCharPunct*                    = $0000;
  309.     smCharAscii*                    = $0001;
  310.     smCharEuro*                    = $0007;
  311.     smCharExtAscii*                = $0007;                        (* More correct synonym for smCharEuro *)
  312. (* Additional CharType character types for script systems *)
  313.     smCharKatakana*                = $0002;                        (*Japanese Katakana*)
  314.     smCharHiragana*                = $0003;                        (*Japanese Hiragana*)
  315.     smCharIdeographic*            = $0004;                        (*Hanzi, Kanji, Hanja*)
  316.     smCharTwoByteGreek*            = $0005;                        (*2-byte Greek in Far East systems*)
  317.     smCharTwoByteRussian*        = $0006;                        (*2-byte Cyrillic in Far East systems*)
  318.     smCharBidirect*                = $0008;                        (*Arabic/Hebrew*)
  319.     smCharContextualLR*            = $0009;                        (*Contextual left-right: Thai, Indic scripts*)
  320.     smCharNonContextualLR*        = $000A;                        (*Non-contextual left-right: Cyrillic, Greek*)
  321.     smCharHangul*                = $000C;                        (*Korean Hangul*)
  322.     smCharJamo*                    = $000D;                        (*Korean Jamo*)
  323.     smCharBopomofo*                = $000E;                        (*Chinese Bopomofo*)
  324. (* old names for some of above, for backward compatibility *)
  325.     smCharFISKana*                = $0002;                        (*Katakana*)
  326.     smCharFISGana*                = $0003;                        (*Hiragana*)
  327.     smCharFISIdeo*                = $0004;                        (*Hanzi, Kanji, Hanja*)
  328.  
  329.     smCharFISGreek*                = $0005;                        (*2-byte Greek in Far East systems*)
  330.     smCharFISRussian*            = $0006;                        (*2-byte Cyrillic in Far East systems*)
  331. (* CharType classes for punctuation (smCharPunct) *)
  332.     smPunctNormal*                = $0000;
  333.     smPunctNumber*                = $0100;
  334.     smPunctSymbol*                = $0200;
  335.     smPunctBlank*                = $0300;
  336. (* Additional CharType classes for punctuation in two-byte systems *)
  337.     smPunctRepeat*                = $0400;                        (* repeat marker *)
  338.     smPunctGraphic*                = $0500;                        (* line graphics *)
  339. (* CharType Katakana and Hiragana classes for two-byte systems *)
  340.     smKanaSmall*                    = $0100;                        (*small kana character*)
  341.     smKanaHardOK*                = $0200;                        (*can have dakuten*)
  342.     smKanaSoftOK*                = $0300;                        (*can have dakuten or han-dakuten*)
  343. (* CharType Ideographic classes for two-byte systems *)
  344.     smIdeographicLevel1*            = $0000;                        (*level 1 char*)
  345.     smIdeographicLevel2*            = $0100;                        (*level 2 char*)
  346.     smIdeographicUser*            = $0200;                        (*user char*)
  347. (* old names for above, for backward compatibility *)
  348.     smFISClassLvl1*                = $0000;                        (*level 1 char*)
  349.     smFISClassLvl2*                = $0100;                        (*level 2 char*)
  350.     smFISClassUser*                = $0200;                        (*user char*)
  351. (* CharType Jamo classes for Korean systems *)
  352.     smJamoJaeum*                    = $0000;                        (*simple consonant char*)
  353.     smJamoBogJaeum*                = $0100;                        (*complex consonant char*)
  354.     smJamoMoeum*                    = $0200;                        (*simple vowel char*)
  355.  
  356.     smJamoBogMoeum*                = $0300;                        (*complex vowel char*)
  357. (* CharType glyph orientation for two-byte systems *)
  358.     smCharHorizontal*            = $0000;                        (* horizontal character form, or for both *)
  359.     smCharVertical*                = $1000;                        (* vertical character form *)
  360. (* CharType directions *)
  361.     smCharLeft*                    = $0000;
  362.     smCharRight*                    = $2000;
  363. (* CharType case modifers *)
  364.     smCharLower*                    = $0000;
  365.     smCharUpper*                    = $4000;
  366. (* CharType character size modifiers (1 or multiple bytes). *)
  367.     smChar1byte*                    = $0000;
  368.     smChar2byte*                    = $8000;
  369. (* TransliterateText target types for Roman *)
  370.     smTransAscii*                = 0;                            (*convert to ASCII*)
  371.     smTransNative*                = 1;                            (*convert to font script*)
  372.     smTransCase*                    = $FE;                            (*convert case for all text*)
  373.     smTransSystem*                = $FF;                            (*convert to system script*)
  374. (* TransliterateText target types for two-byte scripts *)
  375.     smTransAscii1*                = 2;                            (*1-byte Roman*)
  376.     smTransAscii2*                = 3;                            (*2-byte Roman*)
  377.     smTransKana1*                = 4;                            (*1-byte Japanese Katakana*)
  378.     smTransKana2*                = 5;                            (*2-byte Japanese Katakana*)
  379.  
  380.     smTransGana2*                = 7;                            (*2-byte Japanese Hiragana (no 1-byte Hiragana)*)
  381.     smTransHangul2*                = 8;                            (*2-byte Korean Hangul*)
  382.     smTransJamo2*                = 9;                            (*2-byte Korean Jamo*)
  383.     smTransBopomofo2*            = 10;                            (*2-byte Chinese Bopomofo*)
  384. (* TransliterateText target modifiers *)
  385.     smTransLower*                = $4000;                        (*target becomes lowercase*)
  386.     smTransUpper*                = $8000;                        (*target becomes uppercase*)
  387. (* TransliterateText resource format numbers *)
  388.     smTransRuleBaseFormat*        = 1;                            (*Rule based trsl resource format *)
  389.     smTransHangulFormat*            = 2;                            (*Table based Hangul trsl resource format*)
  390. (* TransliterateText property flags *)
  391.     smTransPreDoubleByting*        = 1;                            (*Convert all text to double byte before transliteration*)
  392.     smTransPreLowerCasing*        = 2;                            (*Convert all text to lower case before transliteration*)
  393. (* TransliterateText source mask - general *)
  394.     smMaskAll*                    = $FFFFFFFF;                    (*Convert all text*)
  395. (* TransliterateText source masks *)
  396.     smMaskAscii*                    = $00000001;                    (*2POINTER TO smTransAscii*)
  397.     smMaskNative*                = $00000002;                    (*2POINTER TO smTransNative*)
  398. (* TransliterateText source masks for two-byte scripts *)
  399.     smMaskAscii1*                = $00000004;                    (*2POINTER TO smTransAscii1*)
  400.     smMaskAscii2*                = $00000008;                    (*2POINTER TO smTransAscii2*)
  401.     smMaskKana1*                    = $00000010;                    (*2POINTER TO smTransKana1*)
  402.     smMaskKana2*                    = $00000020;                    (*2POINTER TO smTransKana2*)
  403.     smMaskGana2*                    = $00000080;                    (*2POINTER TO smTransGana2*)
  404.     smMaskHangul2*                = $00000100;                    (*2POINTER TO smTransHangul2*)
  405.     smMaskJamo2*                    = $00000200;                    (*2POINTER TO smTransJamo2*)
  406.     smMaskBopomofo2*                = $00000400;                    (*2POINTER TO smTransBopomofo2*)
  407.  
  408. (* Result values from GetScriptManagerVariable and SetScriptManagerVariable calls. *)
  409.     smNotInstalled*                = 0;                            (*routine not available in script*)
  410.     smBadVerb*                    = -1;                            (*Bad verb passed to a routine*)
  411.     smBadScript*                    = -2;                            (*Bad script code passed to a routine*)
  412.  
  413. (* Values for script redraw flag. *)
  414.     smRedrawChar*                = 0;                            (*Redraw character only*)
  415.     smRedrawWord*                = 1;                            (*Redraw entire word (2-byte systems)*)
  416.     smRedrawLine*                = -1;                            (*Redraw entire line (bidirectional systems)*)
  417. (* GetScriptManagerVariable and SetScriptManagerVariable verbs *)
  418.     smVersion*                    = 0;                            (*Script Manager version number*)
  419.     smMunged*                    = 2;                            (*Globals change count*)
  420.     smEnabled*                    = 4;                            (*Count of enabled scripts, incl Roman*)
  421.     smBidirect*                    = 6;                            (*At least one bidirectional script*)
  422.     smFontForce*                    = 8;                            (*Force font flag*)
  423.     smIntlForce*                    = 10;                            (*Force intl flag*)
  424.     smForced*                    = 12;                            (*Script was forced to system script*)
  425.     smDefault*                    = 14;                            (*Script was defaulted to Roman script*)
  426.     smPrint*                        = 16;                            (*Printer action routine*)
  427.     smSysScript*                    = 18;                            (*System script*)
  428.     smLastScript*                = 20;                            (*Last keyboard script*)
  429.     smKeyScript*                    = 22;                            (*Keyboard script*)
  430.     smSysRef*                    = 24;                            (*System folder refNum*)
  431.     smKeyCache*                    = 26;                            (*obsolete*)
  432.     smKeySwap*                    = 28;                            (*Swapping table handle*)
  433.     smGenFlags*                    = 30;                            (*General flags long*)
  434.     smOverride*                    = 32;                            (*Script override flags*)
  435.  
  436.     smCharPortion*                = 34;                            (*Ch vs SpExtra proportion*)
  437. (* New for System 7.0: *)
  438.     smDoubleByte*                = 36;                            (*Flag for double-byte script installed*)
  439.     smKCHRCache*                    = 38;                            (*Returns pointer to KCHR cache*)
  440.     smRegionCode*                = 40;                            (*Returns current region code (verXxx)*)
  441.     smKeyDisableState*            = 42;                            (*Returns current keyboard disable state*)
  442. (* GetScriptVariable and SetScriptVariable verbs.
  443. Note: Verbs private to script systems are negative, while
  444. those general across script systems are non-negative. *)
  445.     smScriptVersion*                = 0;                            (*Script software version*)
  446.     smScriptMunged*                = 2;                            (*Script entry changed count*)
  447.     smScriptEnabled*                = 4;                            (*Script enabled flag*)
  448.     smScriptRight*                = 6;                            (*Right to left flag*)
  449.     smScriptJust*                = 8;                            (*Justification flag*)
  450.     smScriptRedraw*                = 10;                            (*Word redraw flag*)
  451.     smScriptSysFond*                = 12;                            (*Preferred system font*)
  452.     smScriptAppFond*                = 14;                            (*Preferred Application font*)
  453.     smScriptBundle*                = 16;                            (*Beginning of itlb verbs*)
  454.     smScriptNumber*                = 16;                            (*Script itl0 id*)
  455.     smScriptDate*                = 18;                            (*Script itl1 id*)
  456.     smScriptSort*                = 20;                            (*Script itl2 id*)
  457.     smScriptFlags*                = 22;                            (*flags word*)
  458.     smScriptToken*                = 24;                            (*Script itl4 id*)
  459.     smScriptEncoding*            = 26;                            (*id of optional itl5, if present*)
  460.     smScriptLang*                = 28;                            (*Current language for script*)
  461.  
  462.     smScriptNumDate*                = 30;                            (*Script Number/Date formats.*)
  463.     smScriptKeys*                = 32;                            (*Script KCHR id*)
  464.     smScriptIcon*                = 34;                            (*AIFF.ID # of SICN or kcs#/kcs4/kcs8 suite*)
  465.     smScriptPrint*                = 36;                            (*Script printer action routine*)
  466.     smScriptTrap*                = 38;                            (*Trap entry pointer*)
  467.     smScriptCreator*                = 40;                            (*Script file creator*)
  468.     smScriptFile*                = 42;                            (*Script file name*)
  469.     smScriptName*                = 44;                            (*Script name*)
  470. (* There is a hole here for old Kanji private verbs 46-76 
  471.  
  472.  New for System 7.0: *)
  473.     smScriptMonoFondSize*        = 78;                            (*default monospace FOND (hi) & size (lo)*)
  474.     smScriptPrefFondSize*        = 80;                            (*preferred FOND (hi) & size (lo)*)
  475.     smScriptSmallFondSize*        = 82;                            (*default small FOND (hi) & size (lo)*)
  476.     smScriptSysFondSize*            = 84;                            (*default system FOND (hi) & size (lo)*)
  477.     smScriptAppFondSize*            = 86;                            (*default app FOND (hi) & size (lo)*)
  478.     smScriptHelpFondSize*        = 88;                            (*default Help Mgr FOND (hi) & size (lo)*)
  479.     smScriptValidStyles*            = 90;                            (*mask of valid styles for script*)
  480.     smScriptAliasStyle*            = 92;                            (*style (set) to use for aliases*)
  481. (* Special script code values for International Utilities *)
  482.     iuSystemScript*                = -1;                            (* <obsolete>  system script *)
  483.     iuCurrentScript*                = -2;                            (* <obsolete>  current script (for font of grafPort) *)
  484. (* Negative verbs for KeyScript *)
  485.     smKeyNextScript*                = -1;                            (* Switch to next available script *)
  486.     smKeySysScript*                = -2;                            (* Switch to the system script *)
  487.     smKeySwapScript*                = -3;                            (* Switch to previously-used script *)
  488. (* New for System 7.0: *)
  489.     smKeyNextKybd*                = -4;                            (* Switch to next keyboard in current keyscript *)
  490.  
  491.     smKeySwapKybd*                = -5;                            (* Switch to previously-used keyboard in current keyscript *)
  492.     smKeyDisableKybds*            = -6;                            (* Disable keyboards not in system or Roman script *)
  493.     smKeyEnableKybds*            = -7;                            (* Re-enable keyboards for all enabled scripts *)
  494.     smKeyToggleInline*            = -8;                            (* Toggle inline input for current keyscript *)
  495.     smKeyToggleDirection*        = -9;                            (* Toggle default line direction (TESysJust) *)
  496.     smKeyNextInputMethod*        = -10;                            (* Switch to next input method in current keyscript *)
  497.     smKeySwapInputMethod*        = -11;                            (* Switch to last-used input method in current keyscript *)
  498.     smKeyDisableKybdSwitch*        = -12;                            (* Disable switching from the current keyboard *)
  499.     smKeySetDirLeftRight*        = -15;                            (* Set default line dir to left-right, align left *)
  500.     smKeySetDirRightLeft*        = -16;                            (* Set default line dir to right-left, align right *)
  501.     smKeyRoman*                    = -17;                            (* Set keyscript to Roman. Does nothing if Roman-only
  502.                                         system, unlike KeyScript(smRoman) which forces
  503.                                         an update to current default Roman keyboard *)
  504. (* Bits in the smScriptFlags word
  505. (bits above 8 are non-static) *)
  506.     smsfIntellCP*                = 0;                            (*Script has intelligent cut & paste*)
  507.     smsfSingByte*                = 1;                            (*Script has only single bytes*)
  508.     smsfNatCase*                    = 2;                            (*Native chars have upper & lower case*)
  509.     smsfContext*                    = 3;                            (*Script is contextual*)
  510.     smsfNoForceFont*                = 4;                            (*Script will not force characters*)
  511.     smsfB0Digits*                = 5;                            (*Script has alternate digits at B0-B9*)
  512.     smsfAutoInit*                = 6;                            (*Auto initialize the script*)
  513.     smsfUnivExt*                    = 7;                            (*Script is handled by universal extension*)
  514.     smsfSynchUnstyledTE*            = 8;                            (*Script synchronizes for unstyled TE*)
  515.     smsfForms*                    = 13;                            (*Uses contextual forms for letters*)
  516.     smsfLigatures*                = 14;                            (*Uses contextual ligatures*)
  517.     smsfReverse*                    = 15;                            (*Reverses native text, right-left*)
  518. (* Bits in the smGenFlags long.
  519. First (high-order) byte is set from itlc flags byte. *)
  520.     smfShowIcon*                    = 31;                            (*Show icon even if only one script*)
  521.     smfDualCaret*                = 30;                            (*Use dual caret for mixed direction text*)
  522.     smfNameTagEnab*                = 29;                            (*Reserved for internal use*)
  523.     smfUseAssocFontInfo*            = 28;                            (*Use the associated font info for FontMetrics calls <48>*)
  524.  
  525. (* Roman script constants 
  526.  The following are here for backward compatibility, but should not be used. 
  527.  This information should be obtained using GetScript. *)
  528.     romanSysFond*                = $3FFF;                        (*system font id number*)
  529.     romanAppFond*                = 3;                            (*application font id number*)
  530.     romanFlags*                    = $0007;                        (*roman settings*)
  531. (* Script Manager font equates. *)
  532.     smFondStart*                    = $4000;                        (*start from 16K*)
  533.     smFondEnd*                    = $C000;                        (*past end of range at 48K*)
  534. (* Miscellaneous font equates. *)
  535.     smUprHalfCharSet*            = $80;                            (*first char code in top half of std char set*)
  536. (* Character Set Extensions *)
  537.     diaeresisUprY*                = $D9;
  538.     fraction*                    = $DA;
  539.     intlCurrency*                = $DB;
  540.     leftSingGuillemet*            = $DC;
  541.     rightSingGuillemet*            = $DD;
  542.     fiLigature*                    = $DE;
  543.     flLigature*                    = $DF;
  544.     dblDagger*                    = $E0;
  545.     centeredDot*                    = $E1;
  546.     baseSingQuote*                = $E2;
  547.     baseDblQuote*                = $E3;
  548.     perThousand*                    = $E4;
  549.     circumflexUprA*                = $E5;
  550.  
  551.     circumflexUprE*                = $E6;
  552.     acuteUprA*                    = $E7;
  553.     diaeresisUprE*                = $E8;
  554.     graveUprE*                    = $E9;
  555.     acuteUprI*                    = $EA;
  556.     circumflexUprI*                = $EB;
  557.     diaeresisUprI*                = $EC;
  558.     graveUprI*                    = $ED;
  559.     acuteUprO*                    = $EE;
  560.     circumflexUprO*                = $EF;
  561.     appleLogo*                    = $F0;
  562.     graveUprO*                    = $F1;
  563.     acuteUprU*                    = $F2;
  564.     circumflexUprU*                = $F3;
  565.     graveUprU*                    = $F4;
  566.     dotlessLwrI*                    = $F5;
  567.     circumflex*                    = $F6;
  568.     tilde*                        = $F7;
  569.     macron*                        = $F8;
  570.     breveMark*                    = $F9;
  571.  
  572.     overDot*                        = $FA;
  573.     ringMark*                    = $FB;
  574.     cedilla*                        = $FC;
  575.     doubleAcute*                    = $FD;
  576.     ogonek*                        = $FE;
  577.     hachek*                        = $FF;
  578. (* TokenType values *)
  579.     tokenIntl*                    = 4;                            (*the itl resource number of the tokenizer*)
  580.     tokenEmpty*                    = -1;                            (*used internally as an empty flag*)
  581.  
  582.     tokenUnknown*                = 0;                            (*chars that do not match a defined token type*)
  583.     tokenWhite*                    = 1;                            (*white space*)
  584.     tokenLeftLit*                = 2;                            (*literal begin*)
  585.     tokenRightLit*                = 3;                            (*literal end*)
  586.     tokenAlpha*                    = 4;                            (*alphabetic*)
  587.     tokenNumeric*                = 5;                            (*numeric*)
  588.     tokenNewLine*                = 6;                            (*new line*)
  589.     tokenLeftComment*            = 7;                            (*open comment*)
  590.     tokenRightComment*            = 8;                            (*close comment*)
  591.     tokenLiteral*                = 9;                            (*literal*)
  592.     tokenEscape*                    = 10;                            (*character escape (e.g. '\' in "\n", "\t")*)
  593.     tokenAltNum*                    = 11;                            (*alternate number (e.g. $B0-B9 in Arabic,Hebrew)*)
  594.     tokenRealNum*                = 12;                            (*real number*)
  595.     tokenAltReal*                = 13;                            (*alternate real number*)
  596.     tokenReserve1*                = 14;                            (*reserved*)
  597.     tokenReserve2*                = 15;                            (*reserved*)
  598.     tokenLeftParen*                = 16;                            (*open parenthesis*)
  599.     tokenRightParen*                = 17;                            (*close parenthesis*)
  600.     tokenLeftBracket*            = 18;                            (*open square bracket*)
  601.     tokenRightBracket*            = 19;                            (*close square bracket*)
  602.  
  603.     tokenLeftCurly*                = 20;                            (*open curly bracket*)
  604.     tokenRightCurly*                = 21;                            (*close curly bracket*)
  605.     tokenLeftEnclose*            = 22;                            (*open guillemet*)
  606.     tokenRightEnclose*            = 23;                            (*close guillemet*)
  607.     tokenPlus*                    = 24;
  608.     tokenMinus*                    = 25;
  609.     tokenAsterisk*                = 26;                            (*times/multiply*)
  610.     tokenDivide*                    = 27;
  611.     tokenPlusMinus*                = 28;                            (*plus or minus symbol*)
  612.     tokenSlash*                    = 29;
  613.     tokenBackSlash*                = 30;
  614.     tokenLess*                    = 31;                            (*less than symbol*)
  615.     tokenGreat*                    = 32;                            (*greater than symbol*)
  616.     tokenEqual*                    = 33;
  617.     tokenLessEqual2*                = 34;                            (*less than or equal, 2 characters (e.g. <=)*)
  618.     tokenLessEqual1*                = 35;                            (*less than or equal, 1 character*)
  619.     tokenGreatEqual2*            = 36;                            (*greater than or equal, 2 characters (e.g. >=)*)
  620.     tokenGreatEqual1*            = 37;                            (*greater than or equal, 1 character*)
  621.     token2Equal*                    = 38;                            (*double equal (e.g. ==)*)
  622.     tokenColonEqual*                = 39;                            (*colon equal*)
  623.  
  624.     tokenNotEqual*                = 40;                            (*not equal, 1 character*)
  625.     tokenLessGreat*                = 41;                            (*less/greater, Pascal not equal (e.g. <>)*)
  626.     tokenExclamEqual*            = 42;                            (*exclamation equal, C not equal (e.g. !=)*)
  627.     tokenExclam*                    = 43;                            (*exclamation point*)
  628.     tokenTilde*                    = 44;                            (*centered tilde*)
  629.     tokenComma*                    = 45;
  630.     tokenPeriod*                    = 46;
  631.     tokenLeft2Quote*                = 47;                            (*open double quote*)
  632.     tokenRight2Quote*            = 48;                            (*close double quote*)
  633.     tokenLeft1Quote*                = 49;                            (*open single quote*)
  634.     tokenRight1Quote*            = 50;                            (*close single quote*)
  635.     token2Quote*                    = 51;                            (*double quote*)
  636.     token1Quote*                    = 52;                            (*single quote*)
  637.     tokenSemicolon*                = 53;
  638.     tokenPercent*                = 54;
  639.     tokenCaret*                    = 55;
  640.     tokenUnderline*                = 56;
  641.     tokenAmpersand*                = 57;
  642.     tokenAtSign*                    = 58;
  643.     tokenBar*                    = 59;                            (*vertical bar*)
  644.  
  645.     tokenQuestion*                = 60;
  646.     tokenPi*                        = 61;                            (*lower-case pi*)
  647.     tokenRoot*                    = 62;                            (*square root symbol*)
  648.     tokenSigma*                    = 63;                            (*capital sigma*)
  649.     tokenIntegral*                = 64;                            (*integral sign*)
  650.     tokenMicro*                    = 65;
  651.     tokenCapPi*                    = 66;                            (*capital pi*)
  652.     tokenInfinity*                = 67;
  653.     tokenColon*                    = 68;
  654.     tokenHash*                    = 69;                            (*e.g. #*)
  655.     tokenDollar*                    = 70;
  656.     tokenNoBreakSpace*            = 71;                            (*non-breaking space*)
  657.     tokenFraction*                = 72;
  658.     tokenIntlCurrency*            = 73;
  659.     tokenLeftSingGuillemet*        = 74;
  660.     tokenRightSingGuillemet*        = 75;
  661.     tokenPerThousand*            = 76;
  662.     tokenEllipsis*                = 77;
  663.     tokenCenterDot*                = 78;
  664.     tokenNil*                    = 127;
  665.  
  666.     delimPad*                    = -2;
  667. (* obsolete, misspelled token names kept for backward compatibility *)
  668.     tokenTilda*                    = 44;
  669.     tokenCarat*                    = 55;
  670.  
  671. (* Table selectors for GetItlTable *)
  672.     smWordSelectTable*            = 0;                            (* get word select break table from LONG("itl2") *)
  673.     smWordWrapTable*                = 1;                            (* get word wrap break table from LONG("itl2") *)
  674.     smNumberPartsTable*            = 2;                            (* get default number parts table from LONG("itl4") *)
  675.     smUnTokenTable*                = 3;                            (* get unToken table from LONG("itl4") *)
  676.     smWhiteSpaceList*            = 4;                            (* get white space list from LONG("itl4") *)
  677.     iuWordSelectTable*            = 0;                            (* <obsolete>  get word select break table from LONG("itl2") *)
  678.     iuWordWrapTable*                = 1;                            (* <obsolete>  get word wrap break table from LONG("itl2") *)
  679.     iuNumberPartsTable*            = 2;                            (* <obsolete>  get default number parts table from LONG("itl4") *)
  680.     iuUnTokenTable*                = 3;                            (* <obsolete>  get unToken table from LONG("itl4") *)
  681.     iuWhiteSpaceList*            = 4;                            (* <obsolete>  get white space list from LONG("itl4") *)
  682.  
  683. (* end of stuff moved from Packages.h *)
  684.     tokenOK*                        = 0;                            (* TokenResults *)
  685.     tokenOverflow*                = 1;                            (* TokenResults *)
  686.     stringOverflow*                = 2;                            (* TokenResults *)
  687.     badDelim*                    = 3;                            (* TokenResults *)
  688.     badEnding*                    = 4;                            (* TokenResults *)
  689.     crash*                        = 5;                            (* TokenResults *)
  690.  
  691.     
  692. TYPE
  693.     TokenResults* = Types.SInt8;
  694.  
  695.     CharByteTable* = (*ΔΔPACKEDΔΔ*) ARRAY 256 (*ΔΔ[0..255]ΔΔ*) OF CHAR;
  696.  
  697.     TokenType* = INTEGER;
  698.  
  699.     DelimType* = ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF TokenType;
  700.  
  701.     CommentType* = ARRAY 4 (*ΔΔ[0..3]ΔΔ*) OF TokenType;
  702.  
  703.     TokenRec* = RECORD
  704.         theToken*:                TokenType;
  705.         position*:                Types.Ptr;                                    (*pointer into original source*)
  706.         length*:                    LONGINT;                                (*length of text in original source*)
  707.         stringPosition*:            Types.StringPtr;                                (*Pascal/C string copy of identifier*)
  708.     END;
  709.  
  710.     TokenRecPtr* = POINTER TO TokenRec;
  711.  
  712.     TokenBlock* = RECORD
  713.         source*:                    Types.Ptr;                                    (*pointer to stream of characters*)
  714.         sourceLength*:            LONGINT;                                (*length of source stream*)
  715.         tokenList*:                Types.Ptr;                                    (*pointer to array of tokens*)
  716.         tokenLength*:            LONGINT;                                (*maximum length of TokenList*)
  717.         tokenCount*:                LONGINT;                                (*number tokens generated by tokenizer*)
  718.         stringList*:                Types.Ptr;                                    (*pointer to stream of identifiers*)
  719.         stringLength*:            LONGINT;                                (*length of string list*)
  720.         stringCount*:            LONGINT;                                (*number of bytes currently used*)
  721.         doString*:                BOOLEAN;                                (*make strings & put into StringList*)
  722.         doAppend*:                BOOLEAN;                                (*append to TokenList rather than replace*)
  723.         doAlphanumeric*:            BOOLEAN;                                (*identifiers may include numeric*)
  724.         doNest*:                    BOOLEAN;                                (*do comments nest?*)
  725.         leftDelims*:                ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF TokenType;
  726.         rightDelims*:            ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF TokenType;
  727.         leftComment*:            ARRAY 4 (*ΔΔ[0..3]ΔΔ*) OF TokenType;
  728.         rightComment*:            ARRAY 4 (*ΔΔ[0..3]ΔΔ*) OF TokenType;
  729.         escapeCode*:                TokenType;                                (*escape symbol code*)
  730.         decimalCode*:            TokenType;
  731.         itlResource*:            Types.Handle;                                    (*handle to itl4 resource of current script*)
  732.         reserved*:                ARRAY 8 (*ΔΔ[0..7]ΔΔ*) OF LONGINT;                (*must be zero!*)
  733.     END;
  734.  
  735.     TokenBlockPtr* = POINTER TO TokenBlock;
  736.  
  737. PROCEDURE GetSysDirection*(): INTEGER;
  738.     (*$IF NOT CFMSYSTEMCALLS*)
  739.     INLINE PASCAL $3EB8, $0BAC;            (* MOVE.w $0BAC,(SP) *)
  740.     (*$END*)
  741.  
  742. PROCEDURE SetSysDirection*( value: INTEGER );
  743.     (*$IF NOT CFMSYSTEMCALLS*)
  744.     INLINE PASCAL $31DF, $0BAC;            (* MOVE.w (SP)+,$0BAC *)
  745.     (*$END*)
  746.  
  747. PROCEDURE FontScript*(): INTEGER;
  748.     (*$IF NOT GENERATINGCFM*)
  749.     INLINE PASCAL $2F3C, $8200, $0000, $A8B5;
  750.     (*$END*)
  751. PROCEDURE IntlScript*(): INTEGER;
  752.     (*$IF NOT GENERATINGCFM*)
  753.     INLINE PASCAL $2F3C, $8200, $0002, $A8B5;
  754.     (*$END*)
  755. PROCEDURE KeyScript*(code: INTEGER);
  756.     (*$IF NOT GENERATINGCFM*)
  757.     INLINE PASCAL $2F3C, $8002, $0004, $A8B5;
  758.     (*$END*)
  759. PROCEDURE CharByte*(textBuf: Types.Ptr; textOffset: INTEGER): INTEGER;
  760.     (*$IF NOT GENERATINGCFM*)
  761.     INLINE PASCAL $2F3C, $8206, $0010, $A8B5;
  762.     (*$END*)
  763. PROCEDURE CharType*(textBuf: Types.Ptr; textOffset: INTEGER): INTEGER;
  764.     (*$IF NOT GENERATINGCFM*)
  765.     INLINE PASCAL $2F3C, $8206, $0012, $A8B5;
  766.     (*$END*)
  767. PROCEDURE IsCmdChar*((*CONST*)VAR event: Events.EventRecord; test: INTEGER): BOOLEAN;
  768.     (*$IF NOT GENERATINGCFM*)
  769.     INLINE PASCAL $2F3C, $8206, $FFD0, $A8B5;
  770.     (*$END*)
  771. PROCEDURE Transliterate*(srcHandle: Types.Handle; dstHandle: Types.Handle; target: INTEGER; srcMask: LONGINT): Types.OSErr;
  772.     (*$IF NOT GENERATINGCFM*)
  773.     INLINE PASCAL $2F3C, $820E, $0018, $A8B5;
  774.     (*$END*)
  775. PROCEDURE ParseTable*(VAR table: CharByteTable): BOOLEAN;
  776.     (*$IF NOT GENERATINGCFM*)
  777.     INLINE PASCAL $2F3C, $8204, $0022, $A8B5;
  778.     (*$END*)
  779. PROCEDURE IntlTokenize*(tokenParam: TokenBlockPtr): TokenResults;
  780.     (*$IF NOT GENERATINGCFM*)
  781.     INLINE PASCAL $2F3C, $8204, $FFFA, $A8B5;
  782.     (*$END*)
  783. PROCEDURE FontToScript*(fontNumber: INTEGER): INTEGER;
  784.     (*$IF NOT GENERATINGCFM*)
  785.     INLINE PASCAL $2F3C, $8202, $0006, $A8B5;
  786.     (*$END*)
  787. PROCEDURE GetScriptManagerVariable*(selector: INTEGER): LONGINT;
  788.     (*$IF NOT GENERATINGCFM*)
  789.     INLINE PASCAL $2F3C, $8402, $0008, $A8B5;
  790.     (*$END*)
  791. PROCEDURE SetScriptManagerVariable*(selector: INTEGER; param: LONGINT): Types.OSErr;
  792.     (*$IF NOT GENERATINGCFM*)
  793.     INLINE PASCAL $2F3C, $8206, $000A, $A8B5;
  794.     (*$END*)
  795. PROCEDURE GetScriptVariable*(script: INTEGER; selector: INTEGER): LONGINT;
  796.     (*$IF NOT GENERATINGCFM*)
  797.     INLINE PASCAL $2F3C, $8404, $000C, $A8B5;
  798.     (*$END*)
  799. PROCEDURE SetScriptVariable*(script: INTEGER; selector: INTEGER; param: LONGINT): Types.OSErr;
  800.     (*$IF NOT GENERATINGCFM*)
  801.     INLINE PASCAL $2F3C, $8208, $000E, $A8B5;
  802.     (*$END*)
  803. (*  New for 7.1  *)
  804. PROCEDURE GetScriptUtilityAddress*(selector: INTEGER; Before: BOOLEAN; script: Types.ScriptCode): Types.UniversalProcPtr;
  805.     (*$IF NOT GENERATINGCFM*)
  806.     INLINE PASCAL $2F3C, $C404, $0038, $A8B5;
  807.     (*$END*)
  808. PROCEDURE SetScriptUtilityAddress*(selector: INTEGER; Before: BOOLEAN; routineAddr: Types.UniversalProcPtr; script: Types.ScriptCode);
  809.     (*$IF NOT GENERATINGCFM*)
  810.     INLINE PASCAL $2F3C, $C008, $003A, $A8B5;
  811.     (*$END*)
  812. PROCEDURE GetScriptQDPatchAddress*(trapNum: INTEGER; Before: BOOLEAN; forPrinting: BOOLEAN; script: Types.ScriptCode): Types.UniversalProcPtr;
  813.     (*$IF NOT GENERATINGCFM*)
  814.     INLINE PASCAL $2F3C, $C406, $003C, $A8B5;
  815.     (*$END*)
  816. PROCEDURE SetScriptQDPatchAddress*(trapNum: INTEGER; Before: BOOLEAN; forPrinting: BOOLEAN; routineAddr: Types.UniversalProcPtr; script: Types.ScriptCode);
  817.     (*$IF NOT GENERATINGCFM*)
  818.     INLINE PASCAL $2F3C, $C00A, $003E, $A8B5;
  819.     (*$END*)
  820. PROCEDURE CharacterByteType*(textBuf: Types.Ptr; textOffset: INTEGER; script: Types.ScriptCode): INTEGER;
  821.     (*$IF NOT GENERATINGCFM*)
  822.     INLINE PASCAL $2F3C, $C206, $0010, $A8B5;
  823.     (*$END*)
  824. PROCEDURE CharacterType*(textBuf: Types.Ptr; textOffset: INTEGER; script: Types.ScriptCode): INTEGER;
  825.     (*$IF NOT GENERATINGCFM*)
  826.     INLINE PASCAL $2F3C, $C206, $0012, $A8B5;
  827.     (*$END*)
  828. PROCEDURE TransliterateText*(srcHandle: Types.Handle; dstHandle: Types.Handle; target: INTEGER; srcMask: LONGINT; script: Types.ScriptCode): Types.OSErr;
  829.     (*$IF NOT GENERATINGCFM*)
  830.     INLINE PASCAL $2F3C, $C20E, $0018, $A8B5;
  831.     (*$END*)
  832. PROCEDURE FillParseTable*(VAR table: CharByteTable; script: Types.ScriptCode): BOOLEAN;
  833.     (*$IF NOT GENERATINGCFM*)
  834.     INLINE PASCAL $2F3C, $C204, $0022, $A8B5;
  835.     (*$END*)
  836. (* Moved from Packages.h *)
  837. PROCEDURE GetIntlResource*(theID: INTEGER): Types.Handle;
  838.     (*$IF NOT GENERATINGCFM*)
  839.     INLINE PASCAL $3F3C, $0006, $A9ED;
  840.     (*$END*)
  841. PROCEDURE SetIntlResource*(refNum: INTEGER; theID: INTEGER; intlHandle: Types.Handle);
  842.     (*$IF NOT GENERATINGCFM*)
  843.     INLINE PASCAL $3F3C, $0008, $A9ED;
  844.     (*$END*)
  845. PROCEDURE ClearIntlResourceCache*;
  846.     (*$IF NOT GENERATINGCFM*)
  847.     INLINE PASCAL $3F3C, $0018, $A9ED;
  848.     (*$END*)
  849. PROCEDURE GetIntlResourceTable*(script: Types.ScriptCode; tableCode: INTEGER; VAR itlHandle: Types.Handle; VAR offset: LONGINT; VAR length: LONGINT);
  850.     (*$IF NOT GENERATINGCFM*)
  851.     INLINE PASCAL $3F3C, $0024, $A9ED;
  852.     (*$END*)
  853. (*$IF OLDROUTINENAMES *)
  854. PROCEDURE SetSysJust*(newDirection: INTEGER);
  855.     (*$IF NOT GENERATINGCFM*)
  856.     INLINE PASCAL $31DF, $0BAC;
  857.     (*$END*)
  858. PROCEDURE GetSysJust*(): INTEGER;
  859.     (*$IF NOT GENERATINGCFM*)
  860.     INLINE PASCAL $3EB8, $0BAC;
  861.     (*$END*)
  862. PROCEDURE Font2Script*(fontNumber: INTEGER): INTEGER;
  863.     (*$IF NOT GENERATINGCFM*)
  864.     INLINE PASCAL $2F3C, $8202, $0006, $A8B5;
  865.     (*$END*)
  866. PROCEDURE GetEnvirons*(selector: INTEGER): LONGINT;
  867.     (*$IF NOT GENERATINGCFM*)
  868.     INLINE PASCAL $2F3C, $8402, $0008, $A8B5;
  869.     (*$END*)
  870. PROCEDURE SetEnvirons*(selector: INTEGER; param: LONGINT): Types.OSErr;
  871.     (*$IF NOT GENERATINGCFM*)
  872.     INLINE PASCAL $2F3C, $8206, $000A, $A8B5;
  873.     (*$END*)
  874. PROCEDURE GetScript*(script: INTEGER; verb: INTEGER): LONGINT;
  875.     (*$IF NOT GENERATINGCFM*)
  876.     INLINE PASCAL $2F3C, $8404, $000C, $A8B5;
  877.     (*$END*)
  878. PROCEDURE SetScript*(script: INTEGER; verb: INTEGER; param: LONGINT): Types.OSErr;
  879.     (*$IF NOT GENERATINGCFM*)
  880.     INLINE PASCAL $2F3C, $8208, $000E, $A8B5;
  881.     (*$END*)
  882. PROCEDURE IUGetIntl*(theID: INTEGER): Types.Handle;
  883.     (*$IF NOT GENERATINGCFM*)
  884.     INLINE PASCAL $3F3C, $0006, $A9ED;
  885.     (*$END*)
  886. PROCEDURE IUSetIntl*(refNum: INTEGER; theID: INTEGER; intlHandle: Types.Handle);
  887.     (*$IF NOT GENERATINGCFM*)
  888.     INLINE PASCAL $3F3C, $0008, $A9ED;
  889.     (*$END*)
  890. PROCEDURE IUClearCache*;
  891.     (*$IF NOT GENERATINGCFM*)
  892.     INLINE PASCAL $3F3C, $0018, $A9ED;
  893.     (*$END*)
  894. PROCEDURE IUGetItlTable*(script: Types.ScriptCode; tableCode: INTEGER; VAR itlHandle: Types.Handle; VAR offset: LONGINT; VAR length: LONGINT);
  895.     (*$IF NOT GENERATINGCFM*)
  896.     INLINE PASCAL $3F3C, $0024, $A9ED;
  897.     (*$END*)
  898. (*$END*)
  899.  
  900. (* $ALIGN RESET*)
  901. (* $POP*)
  902.  
  903.  END Script.
  904.